perm filename BORDER.MF[MF,ALS] blob
sn#753987 filedate 1984-05-24 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 input bbase
C00009 ENDMK
Cā;
input bbase;
sunrules; % use this to get boxes on the SUN screen
N.height = S.height = W.width = E.width = 18pt;
M.height = M.width = 24pt;
apen:= pencircle scaled 2pt;
bpen:= pencircle scaled 1pt;
cpen:= pencircle scaled .5pt;
dpen:= pencircle scaled .25pt;
def horizline expr z = % a horizontal line to the right of point z
draw z .. z+(24pt,0); showit enddef;
vardef char.N.M =
z:=(0,15pt); pen apen; horizline (x,y);
z:=(0,12pt); pen bpen; horizline (x,y);
z:=(0,10pt); pen cpen; horizline (x,y);
z:=(0,9pt); pen dpen; horizline (x,y);
enddef;
test N.M;
end
aspace:= 2pt;
bspace:= 1pt;
cspace:= .5pt;
def vertline expr z = % a vertical line above point z
draw z .. z-(0,18pt); showit enddef;
def CR = xx := x0; yy := y - 3pt; enddef;
def NWdialine expr z = % a vertical line above point z
draw z .. z+(xx,yy); showit enddef;
def NEdialine expr z = % a vertical line above point z
draw z .. z-(xx,yy); showit enddef;
def SEdialine expr z = % a vertical line above point z
draw z .. z+(xx,yy); showit enddef;
def SWdialine expr z = % a vertical line above point z
draw z .. z-(xx,yy); showit enddef;
def moveright = xx:=xx+2pt+adia enddef; % move to next 6pt x 6pt square
def CR = xx:=x0; yy:=yy-6pt enddef; % "carriage return"
vardef char.N.M =
pen dpen; horizline (0,7pt);
pen cpen; horizline (0,6pt);
pen bpen; horizline (0,5pt);
pen apen; horizline (0,1pt);
enddef;
test N.M;
end
pen largepen;
defaultpen:=pencircle scaled .4pt;
largepen:=pencircle scaled .6pt;
def horizline expr z = % a horizontal line to the right of point z
draw z+(.5pt,0)+noise .. z+(5.5pt,0)+noise; showit enddef;
def vertline expr z = % a vertical line above point z
draw z+(0,.5pt)+noise .. z+(0,5.5pt)+noise; showit enddef;
def H = % six horizontal lines
for y := .5pt step pt until 6pt: horizline (xx,yy+y); endfor;
moveright enddef;
def V = % six vertical lines
for x := .5pt step pt until 6pt: vertline (xx+x,yy); endfor;
moveright enddef;
def C = % superimpose a circle on the previous lines
path p; p=(xx-5pt,yy+3pt)+noise .. (xx-3pt,yy+5pt)+noise ..
(xx-1pt,yy+3pt)+noise .. (xx-3pt,yy+1pt)+noise .. cycle;
cullit; erase p; cullit; showit; draw p withpen largepen; showit; enddef;
input bbase;
% sunrules; % use this to get boxes on the SUN screen
N.height = S.height = W.width = E.width = 18pt;
M.height = M.width = 24pt;
def noise=.1pt*(normaldeviate,normaldeviate) enddef;
pen largepen;
defaultpen:=pencircle scaled .4pt;
largepen:=pencircle scaled .6pt;
def horizline expr z = % a horizontal line to the right of point z
draw z+(.5pt,0)+noise .. z+(5.5pt,0)+noise; showit enddef;
def vertline expr z = % a vertical line above point z
draw z+(0,.5pt)+noise .. z+(0,5.5pt)+noise; showit enddef;
def moveright = xx:=xx+6pt enddef; % move to next 6pt x 6pt square
def CR = xx:=x0; yy:=yy-6pt enddef; % "carriage return"
def H = % six horizontal lines
for y := .5pt step pt until 6pt: horizline (xx,yy+y); endfor;
moveright enddef;
def V = % six vertical lines
for x := .5pt step pt until 6pt: vertline (xx+x,yy); endfor;
moveright enddef;
def C = % superimpose a circle on the previous lines
path p; p=(xx-5pt,yy+3pt)+noise .. (xx-3pt,yy+5pt)+noise ..
(xx-1pt,yy+3pt)+noise .. (xx-3pt,yy+1pt)+noise .. cycle;
cullit; erase p; cullit; showit; draw p withpen largepen; showit; enddef;
vardef char.N.M =
xx:=x0:=3pt; yy:=15pt;
H; V; H; V; CR;
V; H; V; H; CR;
H; V; H; V; enddef;
test N.M;
% the example file, continued:
vardef char.N.E =
xx:=x0:=3pt; yy:=15pt;
H; V; H; CR;
V;H;C;V; CR;
H; V; H; CR;
V; H; V; enddef;
test N.E;
vardef char.N.W =
xx:=x0:=-3pt; yy:=15pt;
H; V; H; V; CR;
V;H;C;V; H; CR;
H; V; H; V; enddef;
test N.W;
vardef char.M.E =
xx:=x0:=3pt; yy:=15pt;
H; V; H; CR;
V; H; V; CR;
H; V; H; CR;
V; H; V; enddef;
test M.E;
vardef char.M.W =
xx:=x0:=-3pt; yy:=21pt;
V; H; V; CR;
H; V; H; CR;
V; H; V; CR;
H; V; H; enddef;
test M.W;
vardef char.S.M =
xx:=x0:=-3pt; yy:=9pt;
V; H; V; H; CR;
H; V; H; V; CR;
V; H; V; H; enddef;
test S.M;
vardef char.S.W =
xx:=x0:=-3pt; yy:=15pt;
V; H; V; CR;
H; V; H; CR;
V;H;C;V; CR;
H; V; H; enddef;
test S.W;
vardef char.S.E =
xx:=x0:=-3pt; yy:=9pt;
V; H; V; H; CR;
H; V;H;C;V; CR;
V; H; V; H; enddef;
test S.E;
end